package com.shuda.business.channel.service;

import com.shuda.business.channel.dto.UpstreamChannelDTO;
import com.shuda.business.channel.dto.UpstreamChannelQueryDTO;
import com.shuda.common.dto.PageDTO;
import com.shuda.common.dto.PageResult;

import java.util.List;

/**
 * 上游渠道服务接口
 */
public interface UpstreamChannelService {

    /**
     * 获取上游渠道分页列表
     */
    PageResult<UpstreamChannelDTO> getUpstreamChannelPage(PageDTO pageDTO, UpstreamChannelQueryDTO queryDTO);

    /**
     * 获取上游渠道详情
     */
    UpstreamChannelDTO getUpstreamChannelById(Long id);

    /**
     * 创建上游渠道
     */
    Long createUpstreamChannel(UpstreamChannelDTO dto);

    /**
     * 更新上游渠道
     */
    void updateUpstreamChannel(Long id, UpstreamChannelDTO dto);

    /**
     * 删除上游渠道
     */
    void deleteUpstreamChannel(Long id);

    /**
     * 批量删除上游渠道
     */
    void batchDeleteUpstreamChannel(List<Long> ids);

    /**
     * 更新上游渠道状态
     */
    void updateUpstreamChannelStatus(Long id, String status);

    /**
     * 获取启用的上游渠道列表
     */
    List<UpstreamChannelDTO> getEnabledUpstreamChannelList();
}